package com.xmtlxx.wms.domain.bo;

import com.xmtlxx.common.core.domain.BaseEntity;
import com.xmtlxx.common.core.validate.AddGroup;
import com.xmtlxx.common.core.validate.EditGroup;
import com.xmtlxx.oms.domain.vo.BoxVo;
import com.xmtlxx.wms.domain.vo.WarehouseDtlVo;
import com.xmtlxx.system.domain.SysOss;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

/**
 * 入库单业务对象 t_warehouse
 *
 * @author xmtlxx
 * @date 2022-08-15
 */

@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel("入库单业务对象")
public class WarehouseBo extends BaseEntity {

    /**
     * 入库单ID
     */
    @ApiModelProperty(value = "入库单ID")
    private String id;

    /**
     * 订单ID
     */
    @ApiModelProperty(value = "订单ID", required = true)
    @NotBlank(message = "订单ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private String taskId;

    /**
     * 入库仓库ID
     */
    @ApiModelProperty(value = "入库仓库ID", required = true)
    @NotBlank(message = "入库仓库ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private String storeId;

    /**
     * 入库单号
     */
    @ApiModelProperty(value = "入库单号", required = true)
    @NotBlank(message = "入库单号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String wno;

    /**
     * 类型
     */
    @ApiModelProperty(value = "类型", required = true)
    @NotBlank(message = "类型不能为空", groups = { AddGroup.class, EditGroup.class })
    private String type;

    /**
     * 部门ID
     */
    @ApiModelProperty(value = "部门ID", required = true)
    @NotNull(message = "部门ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long deptId;

    /**
     * 姓名
     */
    @ApiModelProperty(value = "姓名", required = true)
    @NotBlank(message = "姓名不能为空", groups = { AddGroup.class, EditGroup.class })
    private String name;

    /**
     * 联系方式
     */
    @ApiModelProperty(value = "联系方式")
    private String tel;

    /**
     * 地址
     */
    @ApiModelProperty(value = "地址")
    private String address;

    /**
     * 经度
     */
    @ApiModelProperty(value = "经度")
    private String lng;

    /**
     * 纬度
     */
    @ApiModelProperty(value = "纬度")
    private String lat;

    /**
     * 物品数量
     */
    @ApiModelProperty(value = "物品数量", required = true)
    @NotNull(message = "物品数量不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long nums;

    /**
     * 物流配送
     */
    @ApiModelProperty(value = "物流配送 ", required = true)
    @NotBlank(message = "物流配送 不能为空", groups = { AddGroup.class, EditGroup.class })
    private String flag;

    /**
     * 图片附件
     */
    @ApiModelProperty(value = "图片附件")
    private String pics;

    private List<SysOss> oss;

    /**
     * 删除标识
     */
    @ApiModelProperty(value = "删除标识")
    private String delFlag;

    @ApiModelProperty("财物清单")
    private List<WarehouseDtlVo> items;

    @ApiModelProperty("订单编号")
    private String taskNo;

    @ApiModelProperty("是否到货")
    private String isSign;

    /**
     * 跨级确认
     */
    @ApiModelProperty("跨级确认")
    private String isValidate;

    /**
     * 确认时间
     */
    @ApiModelProperty("确认时间")
    private Date validateTime;

    /**
     * 确认人
     */
    @ApiModelProperty("确认人")
    private String validater;

    private List<String> storeIds;

    private List<BoxVo> boxList;

    /**
     * 搜索条件
     */
    private String pno;
    private String pname;

    @ApiModelProperty("是否车辆")
    private String buss;

    /**
     * 是否完成上架
     */
    @ApiModelProperty("是否完成上架")
    private String isFinish;
}
